#include<bits/stdc++.h>
using namespace std;
int n,ioi,k;
struct pap {
	int A,B,C,D,E,NUM;
}su[1000000];
int main() {
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	cin>>n;getchar();
	for(int i=1;i<=n;i++) {
		k++;
		string s;
		getline(cin,s);
//		cout<<s<<endl;
		string sign="";
		for(int i=0;i<6;i++) sign=sign+s[i];
//		cout<<sign<<endl;
		int a[6],l=1,pd=0,opo=0;
		for(int i=0;i<6;i++) a[i]=0;
		for(int i=7;i<s.size();i++) {
			if(opo==0&&s[i]=='0') pd=1;
			if(s[i]>='0'&&s[i]<='9') a[l]=a[l]*10+(int(s[i])-'0'),opo=1;
			else {
				if(l>=1&&l<=3&&s[i]!='.') pd=1;
				if(l==4&&s[i]!=':') pd=1;
				l++,opo=0;
			}
		}
//		for(int i=1;i<6;i++) printf("%d ",a[i]);
		if(pd) {
			cout<<"ERR\n";
			continue;
		}
		if(a[1]<0||a[1]>256||a[2]<0||a[2]>256||a[3]<0||a[3]>256||a[4]<0||a[4]>256||a[5]<0||a[5]>65535) {
			cout<<"ERR\n";
			continue;
		}
		if(sign=="Server") {
			int yoy=0;
			for(int i=1;i<=ioi;i++) {
				if(su[i].A==a[1]&&su[i].B==a[2]&&su[i].C==a[3]&&su[i].D==a[4]&&su[i].E==a[5]) {yoy=1;break;}
			}
			if(yoy) {
				cout<<"FAIL\n";
				continue;
			}
			else {
				ioi++;
				su[ioi].A=a[1],su[ioi].B=a[2],su[ioi].C=a[3],su[ioi].D=a[4],su[ioi].E=a[5];
				su[ioi].NUM=k;
				cout<<"OK\n";
				continue;
			}
		}
		
		if(sign=="Client") {
			int yoy=0;
			for(int i=1;i<=ioi;i++) {
				if(su[i].A==a[1]&&su[i].B==a[2]&&su[i].C==a[3]&&su[i].D==a[4]&&su[i].E==a[5]) {yoy=i;break;}
			}
			if(yoy) {
				cout<<su[yoy].NUM<<"\n";
				continue;
			}
			else {
				cout<<"FAIL\n";
				continue;
			}
		}
	}
	
	return 0;
}
/*
1
Server 192.168.1.1:8080

*/
